#ifndef ZKTECO_COMMON_H
#define ZKTECO_COMMON_H

#ifdef _WIN32
    #include <Windows.h>
#endif


#ifndef XUDC_DLLEXPORT
    #ifdef _WIN32
        #define XUDC_DLLEXPORT
    #else
        #define XUDC_DLLEXPORT __attribute__((visibility("default")))
    #endif
#endif

#ifdef __cplusplus
    #define XUDC_API_BEGIN extern "C" {
    #define XUDC_API_END };
#else
    #define XUDC_API_BEGIN
    #define XUDC_API_END
#endif

#ifndef APICALL
    #ifdef _WIN32
        #define APICALL __stdcall
    #else
        #define APICALL
    #endif
#endif

#ifndef _WIN32
    #ifndef BOOL
        #define BOOL unsigned char
    #endif

    #ifndef FALSE
        #define FALSE 0
    #endif


    #ifndef TRUE
        #define TRUE !FALSE
    #endif

    #ifndef WORD
        #define WORD unsigned short
    #endif

    #ifndef DWORD
        #define DWORD unsigned int

    #endif

#endif

#ifndef UINT
    #define UINT unsigned int
#endif

#ifndef BYTE
    #define BYTE unsigned char
#endif

#define T_U8 unsigned char
#define T_S16 short
#define T_U16 unsigned short
#define T_U32 unsigned int

#endif